updated externals
authorHans Breuer <hans@breuer.org>
Fri, 21 Sep 2001 19:58:35 +0000 (19:58 +0000)
committerHans Breuer <hans@src.gnome.org>
Fri, 21 Sep 2001 19:58:35 +0000 (19:58 +0000)
2001-09-21  Hans Breuer  <hans@breuer.org>

* gdk/gdk.def :
* gtk/gtk.def : updated externals

* gtk/gtkmain.h : define get_gtk_win32_directoty ()
* gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
Also handle that Win32 pathes cann't be hard-coded

* gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
module, themes etc directory calculations

* gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
>16 bit right. The size limit within Win9x appears _not_ to be 32767
but slightly smaller ...

* gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid
>16 bit clipping. Added dummy body for gdk_window_set_icon_list ()

* gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()

* gdk/win32/gdkevents-win32.c : some tweaking to get better expose
handling. I'm not sure if it is better now, but at least not worse

* gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup

* gdk/win32/gdkwin32.h : reflect recent API restrictions

18 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/gdk.def
gdk/win32/gdkdrawable-win32.c
gdk/win32/gdkevents-win32.c
gdk/win32/gdkgeometry-win32.c
gdk/win32/gdkwin32.h
gdk/win32/gdkwindow-win32.c
gdk/win32/makefile.msc
gtk/gtk.def
gtk/gtkmain.c
gtk/gtkmain.h
gtk/gtkrc.c

index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 4e20d60ae17109880828c86fc87a2243d4263b55..f33091b8e3380b28110d2174f3af557c98091dcb 100644 (file)
@@ -1,3 +1,31 @@
+2001-09-21  Hans Breuer  <hans@breuer.org>
+
+       * gdk/gdk.def :
+       * gtk/gtk.def : updated externals
+
+       * gtk/gtkmain.h : define get_gtk_win32_directoty () 
+       * gtk/gtkmain.c (find_module) : don't use module_name after freeing it.
+       Also handle that Win32 pathes cann't be hard-coded      
+
+       * gtk/gtkrc.c : use get_gtk_win32_directoty () to cleanup the various
+       module, themes etc directory calculations
+
+       * gdk/win32/gdkgeometry-win32.c : some more hacking to get coordinates
+       >16 bit right. The size limit within Win9x appears _not_ to be 32767
+       but slightly smaller ...
+
+       * gdk/win32/gdkwindow-win32.c : use impl->position_info to avoid 
+       >16 bit clipping. Added dummy body for gdk_window_set_icon_list ()
+
+       * gdk/win32/gdkdrawable-win32.c : implement gdk_win32_drawable_get_handle ()
+
+       * gdk/win32/gdkevents-win32.c : some tweaking to get better expose
+       handling. I'm not sure if it is better now, but at least not worse
+
+       * gdk/win32/makefile.msc : define INSIDE_GDK_WIN32, some cleanup
+
+       * gdk/win32/gdkwin32.h : reflect recent API restrictions
+
 2001-09-21  Matt Wilson  <msw@redhat.com>
 
        * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): set
index 8df1653d6a21aaf6fc9d00234b2be0b2f4333837..d517cd2cbf31679a0f269bc8319fcb07f268dab5 100644 (file)
@@ -35,7 +35,7 @@ EXPORTS
        gdk_colors_alloc
        gdk_colors_free
        gdk_colors_store
-       gdk_core_pointer
+       gdk_device_get_core_pointer
        gdk_crossing_mode_get_type
        gdk_cursor_new
        gdk_cursor_new_from_pixmap
@@ -51,7 +51,6 @@ EXPORTS
        gdk_device_set_mode
        gdk_device_set_source
        gdk_devices_list
-       gdk_dnd_init
        gdk_drag_abort
        gdk_drag_action_get_type
        gdk_drag_begin
@@ -102,15 +101,10 @@ EXPORTS
        gdk_drawable_unref
        gdk_drop_finish
        gdk_drop_reply
-       gdk_error_code
        gdk_error_trap_pop
        gdk_error_trap_push
-       gdk_error_warnings
-       gdk_event_button_generate
        gdk_event_copy
-       gdk_event_data
        gdk_event_free
-       gdk_event_func
        gdk_event_get
        gdk_event_get_axis
        gdk_event_get_graphics_expose
@@ -119,16 +113,11 @@ EXPORTS
        gdk_event_get_type
        gdk_event_handler_set
        gdk_event_mask_get_type
-       gdk_event_new
        gdk_event_peek
        gdk_event_put
-       gdk_event_queue_append
-       gdk_event_queue_find_first
-       gdk_event_queue_remove_link
        gdk_event_send_client_message
        gdk_event_send_clientmessage_toall
        gdk_event_type_get_type
-       gdk_event_unqueue
        gdk_events_pending
        gdk_exit
        gdk_extension_mode_get_type
@@ -177,7 +166,9 @@ EXPORTS
        gdk_gc_set_tile
        gdk_gc_set_ts_origin
        gdk_gc_unref
+       gdk_get_default_root_window
        gdk_get_display
+       gdk_get_program_class
        gdk_get_show_events
        gdk_get_use_xshm
        gdk_grab_status_get_type
@@ -196,16 +187,12 @@ EXPORTS
        gdk_input_add
        gdk_input_add_full
        gdk_input_condition_get_type
-       gdk_input_exit
-       gdk_input_init
        gdk_input_mode_get_type
        gdk_input_motion_events
        gdk_input_remove
        gdk_input_set_extension_events
        gdk_input_source_get_type
        gdk_join_style_get_type
-       gdk_key_repeat_disable
-       gdk_key_repeat_restore
        gdk_keyboard_grab
        gdk_keyboard_ungrab
        gdk_keymap_get_default
@@ -234,9 +221,9 @@ EXPORTS
        gdk_pango_context_get
        gdk_pango_context_set_colormap
        gdk_pango_layout_get_clip_region
-       gdk_parent_root
        gdk_pixbuf_get_from_drawable
        gdk_pixbuf_render_pixmap_and_mask
+       gdk_pixbuf_render_pixmap_and_mask_for_colormap
        gdk_pixbuf_render_threshold_alpha
        gdk_pixbuf_render_to_drawable
        gdk_pixbuf_render_to_drawable_alpha
@@ -300,7 +287,6 @@ EXPORTS
        gdk_selection_get_type
        gdk_selection_owner_get
        gdk_selection_owner_set
-       gdk_selection_property
        gdk_selection_property_get
        gdk_selection_send_notify
        gdk_set_double_click_time
@@ -344,6 +330,7 @@ EXPORTS
        gdk_visual_get_type
        gdk_visual_type_get_type
        gdk_wcstombs
+       gdk_win32_drawable_get_handle
        gdk_win32_handle_table_lookup
        gdk_win32_hdc_get
        gdk_win32_hdc_release
@@ -416,6 +403,7 @@ EXPORTS
        gdk_window_set_group
        gdk_window_set_hints
        gdk_window_set_icon
+       gdk_window_set_icon_list
        gdk_window_set_icon_name
        gdk_window_set_modal_hint
        gdk_window_set_override_redirect
index 8910965fddea1312c77d5ee890bc07784fa92cd2..44b71f44c69040c8ac3a30a9b07ba9b961dfe984 100644 (file)
@@ -1087,3 +1087,9 @@ gdk_win32_get_visual (GdkDrawable *drawable)
 {
   return gdk_drawable_get_visual (GDK_DRAWABLE_IMPL_WIN32 (drawable)->wrapper);
 }
+
+HWND
+gdk_win32_drawable_get_handle (GdkDrawable *drawable)
+{
+  return GDK_DRAWABLE_HANDLE(drawable);
+}
index ccce2174a545dcfa60ff9a26b444e86f4894dd82..d407f4face43a477791fbd0fbe8a096a63a47cc2 100644 (file)
@@ -233,7 +233,7 @@ real_window_procedure (HWND   hwnd,
        * GDK_EVENT_FUNC_FROM_WINDOW_PROC env var to get this
        * behaviour.
        */
-      if (gdk_event_func_from_window_proc && gdk_event_func)
+      if (gdk_event_func_from_window_proc && _gdk_event_func)
        {
          GDK_THREADS_ENTER ();
          
@@ -2758,6 +2758,12 @@ gdk_event_translate (GdkEvent *event,
         }
       break;
 
+    case WM_GETICON:
+      GDK_NOTE (EVENTS, g_print ("WM_GETICON: %#lx %s\n",
+                                (gulong) msg->hwnd, 
+                                (ICON_BIG == msg->wParam ? "big" : "small")));
+      break;
     case WM_SETCURSOR:
       GDK_NOTE (EVENTS, g_print ("WM_SETCURSOR: %#lx %#x %#x\n",
                                 (gulong) msg->hwnd,
@@ -2864,7 +2870,39 @@ gdk_event_translate (GdkEvent *event,
            _gdk_input_configure_event (&event->configure, window);
        }
       break;
+#if 0
+    case WM_SIZING :
+      {
+        LPRECT lpr = (LPRECT) msg->lParam;
+        NONCLIENTMETRICS ncm;
+        ncm.cbSize = sizeof (NONCLIENTMETRICS);
+
+        SystemParametersInfo (SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0);
+
+        g_print ("WM_SIZING borderWidth %d captionHeight %d\n",
+                 ncm.iBorderWidth, ncm.iCaptionHeight);
+         event->configure.type = GDK_CONFIGURE;
+         event->configure.window = window;
+
+         event->configure.x = lpr->left + ncm.iBorderWidth;
+         event->configure.y = lpr->top + ncm.iCaptionHeight;
+         event->configure.width = lpr->right - lpr->left - 2 * ncm.iBorderWidth;
+         event->configure.height = lpr->bottom - lpr->top - ncm.iCaptionHeight;
+         GDK_WINDOW_OBJECT (window)->x = event->configure.x;
+         GDK_WINDOW_OBJECT (window)->y = event->configure.y;
+         window_impl->width = event->configure.width;
+         window_impl->height = event->configure.height;
+
+         if (GDK_WINDOW_OBJECT (window)->resize_count > 1)
+           GDK_WINDOW_OBJECT (window)->resize_count -= 1;
 
+         return_val = !GDK_WINDOW_DESTROYED (window);
+         if (return_val
+             && GDK_WINDOW_OBJECT (window)->extension_events != 0)
+           _gdk_input_configure_event (&event->configure, window);
+      }
+      break;
+#endif
     case WM_GETMINMAXINFO:
       GDK_NOTE (EVENTS, g_print ("WM_GETMINMAXINFO: %#lx\n", (gulong) msg->hwnd));
 
@@ -3234,12 +3272,14 @@ gdk_flush (void)
 {
   MSG msg;
 
+#if 0
   /* Process all messages currently available */
   while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
     {
       TranslateMessage (&msg); /* Translate virt. key codes */
       DispatchMessage (&msg);  /* Dispatch msg. to window */
     }
+#endif
 
   GdiFlush ();
 }
index 373d6b596b546aa860bcdc4c82ac678b692d0534..8d75953efe72dea52b53a5c1ac75753872ba2837 100644 (file)
@@ -36,6 +36,8 @@
 #include "gdkdrawable-win32.h"
 #include "gdkwindow-win32.h"
 
+#define SIZE_LIMIT 32000
+
 typedef struct _GdkWindowQueueItem GdkWindowQueueItem;
 typedef struct _GdkWindowParentPos GdkWindowParentPos;
 
@@ -360,13 +362,13 @@ _gdk_window_move_resize_child (GdkWindow *window,
       
       if (d_xoffset > 0 || d_yoffset > 0)
        gdk_window_queue_translation (window, MAX (d_xoffset, 0), MAX (d_yoffset, 0));
-      
+
       /* FIXME: 
        */
-      if (new_info.x + new_info.width > 32767)
-        new_info.width = 32767 - new_info.x;
-      if (new_info.y + new_info.height > 32767)
-        new_info.height = 32767 - new_info.y;
+      if (new_info.x + new_info.width > SIZE_LIMIT)
+        new_info.width = SIZE_LIMIT - new_info.x;
+      if (new_info.y + new_info.height > SIZE_LIMIT)
+        new_info.height = SIZE_LIMIT - new_info.y;
 
       if (!SetWindowPos (GDK_WINDOW_HWND (window), NULL,
                       new_info.x, new_info.y, new_info.width, new_info.height,
@@ -441,7 +443,7 @@ gdk_window_compute_position (GdkWindowImplWin32   *window,
 
   info->big = FALSE;
   
-  if (window->width <= 32768)
+  if (window->width <= SIZE_LIMIT)
     {
       info->width = window->width;
       info->x = parent_pos->x + wrapper->x - parent_pos->win32_x;
@@ -449,19 +451,19 @@ gdk_window_compute_position (GdkWindowImplWin32   *window,
   else
     {
       info->big = TRUE;
-      info->width = 32768;
-      if (parent_pos->x + wrapper->x < -16384)
+      info->width = SIZE_LIMIT;
+      if (parent_pos->x + wrapper->x < -(SIZE_LIMIT/2))
        {
-         if (parent_pos->x + wrapper->x + window->width < 16384)
-           info->x = parent_pos->x + wrapper->x + window->width - 32768 - parent_pos->win32_x;
+         if (parent_pos->x + wrapper->x + window->width < (SIZE_LIMIT/2))
+           info->x = parent_pos->x + wrapper->x + window->width - SIZE_LIMIT - parent_pos->win32_x;
          else
-           info->x = -16384 - parent_pos->win32_y;
+           info->x = -(SIZE_LIMIT/2) - parent_pos->win32_y;
        }
       else
        info->x = parent_pos->x + wrapper->x - parent_pos->win32_x;
     }
 
-  if (window->height <= 32768)
+  if (window->height <= SIZE_LIMIT)
     {
       info->height = window->height;
       info->y = parent_pos->y + wrapper->y - parent_pos->win32_y;
@@ -469,13 +471,13 @@ gdk_window_compute_position (GdkWindowImplWin32   *window,
   else
     {
       info->big = TRUE;
-      info->height = 32768;
-      if (parent_pos->y + wrapper->y < -16384)
+      info->height = SIZE_LIMIT;
+      if (parent_pos->y + wrapper->y < -(SIZE_LIMIT/2))
        {
-         if (parent_pos->y + wrapper->y + window->height < 16384)
-           info->y = parent_pos->y + wrapper->y + window->height - 32768 - parent_pos->win32_y;
+         if (parent_pos->y + wrapper->y + window->height < (SIZE_LIMIT/2))
+           info->y = parent_pos->y + wrapper->y + window->height - SIZE_LIMIT - parent_pos->win32_y;
          else
-           info->y = -16384 - parent_pos->win32_y;
+           info->y = -(SIZE_LIMIT/2) - parent_pos->win32_y;
        }
       else
        info->y = parent_pos->y + wrapper->y - parent_pos->win32_y;
index 4e1d898f98b42c60bfabddc91d4082f08fbcbb23..fc5af0b770bf4862706e131450c58ed60645a9be 100644 (file)
@@ -28,6 +28,7 @@
 #define __GDK_WIN32_H__
 
 #include <gdk/gdkprivate.h>
+#include <gdk/gdkinternals.h>
 #include <gdk/gdkcursor.h>
 
 #ifndef STRICT
@@ -196,6 +197,8 @@ extern "C" {
 #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
 #endif
 
+#ifdef INSIDE_GDK_WIN32
+
 #include <gdk/gdkprivate.h>
 
 /* Define corresponding Windows types for some X11 types, just for laziness. */
@@ -339,9 +342,8 @@ struct _GdkGCWin32Class
 
 GType gdk_gc_win32_get_type (void);
 
-#define GDK_ROOT_WINDOW()             ((guint32) HWND_DESKTOP)
+#undef GDK_ROOT_PARENT /* internal access is direct */
 #define GDK_ROOT_PARENT()             ((GdkWindow *) _gdk_parent_root)
-#define GDK_DISPLAY()                 NULL
 #define GDK_WINDOW_HWND(win)          (GDK_DRAWABLE_IMPL_WIN32(((GdkWindowObject *)win)->impl)->handle)
 #define GDK_PIXMAP_HBITMAP(pixmap)    (GDK_DRAWABLE_IMPL_WIN32(((GdkPixmapObject *)pixmap)->impl)->handle)
 #define GDK_DRAWABLE_HANDLE(win)      (GDK_IS_WINDOW (win) ? (GDK_WINDOW_HWND (win)) : (GDK_PIXMAP_HBITMAP (win)))
@@ -350,6 +352,15 @@ GType gdk_gc_win32_get_type (void);
 #define GDK_COLORMAP_WIN32COLORMAP(cmap) (((GdkColormapPrivateWin32 *)GDK_COLORMAP (cmap)->windowing_data)->xcolormap)
 #define GDK_VISUAL_XVISUAL(vis)       (((GdkVisualPrivate *) vis)->xvisual)
 
+#else
+/* definition for exported 'internals' go here */
+#define GDK_WINDOW_HWND(d) (gdk_win32_drawable_get_handle (d))
+
+#endif
+
+#define GDK_ROOT_WINDOW()             ((guint32) HWND_DESKTOP)
+#define GDK_DISPLAY()                 NULL
+
 /* Functions to create GDK pixmaps and windows from their native equivalents */
 GdkPixmap    *gdk_pixmap_foreign_new (GdkNativeWindow anid);
 GdkWindow    *gdk_window_foreign_new (GdkNativeWindow anid);
@@ -357,6 +368,9 @@ GdkWindow    *gdk_window_foreign_new (GdkNativeWindow anid);
 /* Return the Gdk* for a particular HANDLE */
 gpointer      gdk_win32_handle_table_lookup (GdkNativeWindow handle);
 
+/* Translate from drawable to windows handle */
+HWND          gdk_win32_drawable_get_handle (GdkDrawable *drawable);
+
 #define gdk_window_lookup(hwnd) (GdkWindow*) gdk_win32_handle_table_lookup (hwnd)
 #define gdk_pixmap_lookup(hbm) (GdkPixmap*) gdk_win32_handle_table_lookup (hbm)
 
index 630fa598c520a35b3f79cb6480845b509fe1d292..aeaea1e0a832daa998291c99dfcc694b19fc6835 100644 (file)
@@ -610,8 +610,8 @@ gdk_window_new (GdkWindow     *parent,
                                      MAKEINTRESOURCE(klass),
                                      mbtitle,
                                      dwStyle,
-                                     x, y, 
-                                     width, height,
+                                     impl->position_info.x, impl->position_info.y, 
+                                     impl->position_info.width, impl->position_info.height,
                                      hparent,
                                      NULL,
                                      gdk_app_hmodule,
@@ -623,8 +623,8 @@ gdk_window_new (GdkWindow     *parent,
                    MAKEINTRESOURCE(klass),
                    mbtitle,
                    dwStyle,
-                   x, y, 
-                   width, height,
+                   impl->position_info.x, impl->position_info.y, 
+                   impl->position_info.width, impl->position_info.height,
                    hparent,
                    NULL,
                    gdk_app_hmodule,
@@ -1303,7 +1303,7 @@ gdk_window_set_hints (GdkWindow *window,
          impl->hint_min_width = rect.right - rect.left;
          impl->hint_min_height = rect.bottom - rect.top;
 
-         /* Also chek if he current size of the window is in bounds. */
+         /* Also check if he current size of the window is in bounds. */
          GetClientRect (GDK_WINDOW_HWND (window), &rect);
          if (rect.right < min_width && rect.bottom < min_height)
            gdk_window_resize (window, min_width, min_height);
@@ -2005,6 +2005,22 @@ gdk_window_set_override_redirect (GdkWindow *window,
   g_warning ("gdk_window_set_override_redirect not implemented");
 }
 
+void          
+gdk_window_set_icon_list (GdkWindow *window,
+                         GList     *pixbufs)
+{
+  g_return_if_fail (GDK_IS_WINDOW (window));
+
+  if (GDK_WINDOW_DESTROYED (window))
+    return;
+
+  /* We could convert it to a hIcon and DrawIcon () it when getting
+   * a WM_PAINT with IsIconic, but is it worth it ? Same probably
+   * goes for gdk_window_set_icon (). Patches accepted :-)  --hb
+   * Or do we only need to deliver the Icon on WM_GETICON ?
+   */
+}
+
 void          
 gdk_window_set_icon (GdkWindow *window, 
                     GdkWindow *icon_window,
index 06f1bb30835f58cc36257ae7e211df2808557f1e..3f350c7e0caca1d1932c4d0713b4b77f672f2789 100644 (file)
@@ -11,22 +11,11 @@ WTKIT = ..\..\..\wtkit126
 TOP = ../../..
 !INCLUDE $(TOP)/build/win32/make.msc
 
-!IFNDEF DEBUG
-# Full optimization:
-OPTIMIZE = -Ox -MD
-!ELSE
-# Debugging:
-OPTIMIZE = -Zi -MDd
-!ENDIF
-
-# cl -? describes the options
-CC = cl -G5 -GF $(OPTIMIZE) -W3 -nologo
-
-LDFLAGS = /link /machine:ix86 $(LINKDEBUG)
-
 GTK_VER=1.3
 
-CFLAGS = -I. -I.. -I..\.. $(GLIB_CFLAGS) $(PANGO_CFLAGS) -I$(WTKIT)\include -I$(GLIB) -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\"
+CFLAGS = -I. -I.. -I..\.. $(GLIB_CFLAGS) $(PANGO_CFLAGS) \
+       -I$(WTKIT)\include -I$(GLIB) \
+       $(G_DEBUGGING) -DHAVE_CONFIG_H -DINSIDE_GDK_WIN32 -DGDK_VERSION=\"$(GTK_VER)\"
 
 all: \
        ..\..\config.h  \
index fa580dacd144aef4fbae12b13ef1193c40ac965d..a8b52ffad31755efc91555f5f574dc0c3233bccc 100755 (executable)
@@ -70,8 +70,6 @@ EXPORTS
        GTK_TYPE_TREE_ITER
        GTK_TYPE_TREE_MODEL_FLAGS
        GTK_TYPE_TREE_PATH
-       GTK_TYPE_TREE_SELECTION_MODE
-       GTK_TYPE_TREE_SORT_ORDER
        GTK_TYPE_TREE_VIEW_COLUMN_SIZING
        GTK_TYPE_TREE_VIEW_DROP_POSITION
        GTK_TYPE_TREE_VIEW_MODE
@@ -194,7 +192,6 @@ EXPORTS
        gtk_calendar_select_month
        gtk_calendar_thaw
        gtk_calendar_unmark_day
-       gtk_cell_renderer_event
        gtk_cell_renderer_get_fixed_size
        gtk_cell_renderer_get_size
        gtk_cell_renderer_get_type
@@ -204,8 +201,6 @@ EXPORTS
        gtk_cell_renderer_set_fixed_size
        gtk_cell_renderer_text_get_type
        gtk_cell_renderer_text_new
-       gtk_cell_renderer_text_pixbuf_get_type
-       gtk_cell_renderer_text_pixbuf_new
        gtk_cell_renderer_text_set_fixed_height_from_font
        gtk_cell_renderer_toggle_get_active
        gtk_cell_renderer_toggle_get_radio
@@ -345,7 +340,6 @@ EXPORTS
        gtk_container_child_set_property
        gtk_container_child_set_valist
        gtk_container_child_type
-       gtk_container_children
        gtk_container_class_find_child_property
        gtk_container_class_install_child_property
        gtk_container_class_list_child_properties
@@ -354,6 +348,7 @@ EXPORTS
        gtk_container_foreach
        gtk_container_foreach_full
        gtk_container_get_border_width
+       gtk_container_get_children
        gtk_container_get_focus_chain
        gtk_container_get_focus_hadjustment
        gtk_container_get_focus_vadjustment
@@ -884,11 +879,8 @@ EXPORTS
        gtk_marshal_VOID__UINT_BOXED_UINT_FLAGS_FLAGS
        gtk_marshal_VOID__UINT_STRING
        gtk_menu_attach_to_widget
-       gtk_menu_bar_append
        gtk_menu_bar_get_type
-       gtk_menu_bar_insert
        gtk_menu_bar_new
-       gtk_menu_bar_prepend
        gtk_menu_detach
        gtk_menu_get_accel_group
        gtk_menu_get_active
@@ -897,17 +889,16 @@ EXPORTS
        gtk_menu_get_title
        gtk_menu_get_type
        gtk_menu_item_activate
-       gtk_menu_item_configure
        gtk_menu_item_deselect
+       gtk_menu_item_get_right_justified
        gtk_menu_item_get_submenu
        gtk_menu_item_get_type
        gtk_menu_item_new
        gtk_menu_item_new_with_label
        gtk_menu_item_new_with_mnemonic
        gtk_menu_item_remove_submenu
-       gtk_menu_item_right_justify
        gtk_menu_item_select
-       gtk_menu_item_set_placement
+       gtk_menu_item_set_right_justified
        gtk_menu_item_set_submenu
        gtk_menu_item_toggle_size_allocate
        gtk_menu_item_toggle_size_request
@@ -1354,7 +1345,6 @@ EXPORTS
        gtk_text_buffer_move_mark_by_name
        gtk_text_buffer_new
        gtk_text_buffer_paste_clipboard
-       gtk_text_buffer_paste_primary
        gtk_text_buffer_place_cursor
        gtk_text_buffer_remove_all_tags
        gtk_text_buffer_remove_tag
@@ -1438,7 +1428,6 @@ EXPORTS
        gtk_text_iter_set_line_offset
        gtk_text_iter_set_offset
        gtk_text_iter_set_visible_line_offset
-       gtk_text_iter_spew
        gtk_text_iter_starts_line
        gtk_text_iter_toggles_tag
        gtk_text_mark_get_deleted
@@ -1460,11 +1449,11 @@ EXPORTS
        gtk_text_tag_set_priority
        gtk_text_tag_table_add
        gtk_text_tag_table_foreach
+       gtk_text_tag_table_get_size
        gtk_text_tag_table_get_type
        gtk_text_tag_table_lookup
        gtk_text_tag_table_new
        gtk_text_tag_table_remove
-       gtk_text_tag_table_size
        gtk_text_thaw
        gtk_text_unknown_char_utf8
        gtk_text_view_add_child_at_anchor
@@ -1600,7 +1589,6 @@ EXPORTS
        gtk_tree_item_set_subtree
        gtk_tree_iter_copy
        gtk_tree_iter_free
-       gtk_tree_model_deleted
        gtk_tree_model_foreach
        gtk_tree_model_get
        gtk_tree_model_get_column_type
@@ -1611,17 +1599,18 @@ EXPORTS
        gtk_tree_model_get_path
        gtk_tree_model_get_type
        gtk_tree_model_get_value
-       gtk_tree_model_has_child_toggled
-       gtk_tree_model_inserted
        gtk_tree_model_iter_children
        gtk_tree_model_iter_has_child
        gtk_tree_model_iter_n_children
        gtk_tree_model_iter_next
        gtk_tree_model_iter_nth_child
        gtk_tree_model_iter_parent
-       gtk_tree_model_range_changed
        gtk_tree_model_ref_node
-       gtk_tree_model_reordered
+       gtk_tree_model_row_changed
+       gtk_tree_model_row_deleted
+       gtk_tree_model_row_has_child_toggled
+       gtk_tree_model_row_inserted
+       gtk_tree_model_rows_reordered
        gtk_tree_model_sort_convert_path
        gtk_tree_model_sort_get_model
        gtk_tree_model_sort_get_type
@@ -1704,14 +1693,12 @@ EXPORTS
        gtk_tree_view_collapse_all
        gtk_tree_view_collapse_row
        gtk_tree_view_column_add_attribute
-       gtk_tree_view_column_cell_can_focus
-       gtk_tree_view_column_cell_event
        gtk_tree_view_column_cell_get_size
        gtk_tree_view_column_cell_is_visible
        gtk_tree_view_column_cell_render
        gtk_tree_view_column_cell_set_cell_data
        gtk_tree_view_column_clear_attributes
-       gtk_tree_view_column_clear_cell_renderers
+       gtk_tree_view_column_clear
        gtk_tree_view_column_clicked
        gtk_tree_view_column_get_alignment
        gtk_tree_view_column_get_cell_renderers
@@ -1719,7 +1706,7 @@ EXPORTS
        gtk_tree_view_column_get_max_width
        gtk_tree_view_column_get_min_width
        gtk_tree_view_column_get_reorderable
-       gtk_tree_view_column_get_size
+       gtk_tree_view_column_get_sizing
        gtk_tree_view_column_get_sizing
        gtk_tree_view_column_get_sort_indicator
        gtk_tree_view_column_get_sort_order
@@ -1730,13 +1717,14 @@ EXPORTS
        gtk_tree_view_column_get_width
        gtk_tree_view_column_new
        gtk_tree_view_column_new_with_attributes
-       gtk_tree_view_column_pack_end_cell_renderer
-       gtk_tree_view_column_pack_start_cell_renderer
+       gtk_tree_view_column_pack_end
+       gtk_tree_view_column_pack_start
        gtk_tree_view_column_set_alignment
        gtk_tree_view_column_set_attributes
        gtk_tree_view_column_set_cell_data_func
        gtk_tree_view_column_set_cell_renderer
        gtk_tree_view_column_set_clickable
+       gtk_tree_view_column_set_fixed_width
        gtk_tree_view_column_set_max_width
        gtk_tree_view_column_set_min_width
        gtk_tree_view_column_set_reorderable
@@ -1747,7 +1735,6 @@ EXPORTS
        gtk_tree_view_column_set_title
        gtk_tree_view_column_set_visible
        gtk_tree_view_column_set_widget
-       gtk_tree_view_column_set_width
        gtk_tree_view_columns_autosize
        gtk_tree_view_create_row_drag_icon
        gtk_tree_view_expand_all
index 9eeebb7ed4bd1a152c888fa52200d91c22ffbced..2abfb5449756ea8e76538531b119e79c04f1e6ef 100644 (file)
@@ -235,8 +235,13 @@ get_module_path (void)
   if (exe_prefix)
     default_dir = g_build_filename (exe_prefix, "lib", "gtk-2.0", "modules", NULL);
   else
-    default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", "modules", NULL);
-
+    {
+#ifndef G_OS_WIN32
+      default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", "modules", NULL);
+#else
+      default_dir = g_build_filename (get_gtk_win32_directory (""), "modules", NULL);
+#endif
+    }
   module_path = g_strconcat (module_path ? module_path : "",
                             module_path ? G_SEARCHPATH_SEPARATOR_S : "",
                             default_dir, NULL);
@@ -264,6 +269,7 @@ find_module (gchar      **module_path,
     {
       gchar *version_directory;
 
+#ifndef G_OS_WIN32 /* ignoring GTK_BINARY_VERSION elsewhere too */
       version_directory = g_build_filename (module_path[i], GTK_BINARY_VERSION, NULL);
       module_name = g_module_build_path (version_directory, name);
       g_free (version_directory);
@@ -275,13 +281,15 @@ find_module (gchar      **module_path,
        }
       
       g_free (module_name);
+#endif
 
       module_name = g_module_build_path (module_path[i], name);
       
       if (g_file_test (module_name, G_FILE_TEST_EXISTS))
        {
+         module = g_module_open (module_name, G_MODULE_BIND_LAZY);
          g_free (module_name);
-         return g_module_open (module_name, G_MODULE_BIND_LAZY);
+         return module;
        }
 
       g_free (module_name);
@@ -523,7 +531,7 @@ gtk_init_check (int  *argc,
   {
     bindtextdomain (GETTEXT_PACKAGE,
                    g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE,
-                                                                  g_strdup_printf ("gtk-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION),
+                                                                  g_strdup_printf ("gtk-win32-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION),
                                                                   "locale"));
   }
 #endif
index 1d7e5d2ce7719a221ff2f0add29385d198777a61..d379cc2ec8c483260c6beccb9f7662a423c83ffd 100644 (file)
@@ -103,6 +103,13 @@ gboolean gtk_init_check_abi_check (int       *argc,
 
 #endif
 
+#ifdef G_OS_WIN32
+/* don't hard-code any absolute directory but calculate then from
+ * regristy settings or gtk-*.*.dll placement. 
+ */
+gchar *get_gtk_win32_directory (gchar *subdir);
+#endif
+
 #ifndef GTK_DISABLE_DEPRECATED
 void     gtk_exit                 (gint    error_code);
 #endif /* GTK_DISABLE_DEPRECATED */
index c83f0b1cde0bc95f746264b202c9c9b058b275b8..ad88bc4597ace131ec8203b6fa3bed224486295f 100644 (file)
@@ -296,23 +296,21 @@ static GSList *rc_dir_stack = NULL;
 /* RC file handling */
 
 #ifdef G_OS_WIN32
-static gchar *
-get_gtk_dll_name (void)
+gchar *
+get_gtk_win32_directory (gchar *subdir)
 {
   static gchar *gtk_dll = NULL;
 
   if (!gtk_dll)
-    gtk_dll = g_strdup_printf ("gtk-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION);
-
-  return gtk_dll;
-}
+    gtk_dll = g_strdup_printf ("gtk-win32-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION);
 
-static gchar *
-get_themes_directory (void)
-{
-  return g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE,
-                                                       get_gtk_dll_name (),
-                                                       "themes");
+  if (subdir && strlen(subdir) > 0)
+    return g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE,
+                                                                       gtk_dll,
+                                                                       subdir);
+  else
+    return g_win32_get_package_installation_directory (GETTEXT_PACKAGE,
+                                                                    gtk_dll);
 }
 #endif /* G_OS_WIN32 */
  
@@ -328,7 +326,7 @@ gtk_rc_make_default_dir (const gchar *type)
   else
     path = g_build_filename (GTK_LIBDIR, "gtk-2.0,", type, GTK_BINARY_VERSION, NULL);
 #else
-  path = g_build_filename (get_themes_directory (), type, NULL);
+  path = g_build_filename (get_gtk_win32_directory (""), type, NULL);
 #endif
 
   return path;
@@ -363,7 +361,7 @@ gtk_rc_get_im_module_file (void)
 #ifndef G_OS_WIN32
        result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
 #else
-        result = g_build_filename (g_win32_get_package_installation_directory (GETTEXT_PACKAGE, get_gtk_dll_name ()), "gtk.immodules", NULL);
+       result = g_build_filename (get_gtk_win32_directory ("gtk-2.0"), "gtk.immodules", NULL);
 #endif
     }
 
@@ -382,7 +380,7 @@ gtk_rc_get_theme_dir(void)
   else
     path = g_build_filename (GTK_DATA_PREFIX, "share", "themes", NULL);
 #else
-  path = g_strdup (get_themes_directory ());
+  path = g_build_filename (get_gtk_win32_directory (""), "themes", NULL);
 #endif
 
   return path;
@@ -412,7 +410,7 @@ gtk_rc_append_default_module_path(void)
   else
     path = g_build_filename (GTK_LIBDIR, "gtk-2.0", GTK_VERSION, "engines", NULL);
 #else
-  path = g_build_filename (get_themes_directory (), "engines", NULL);
+  path = g_build_filename (get_gtk_win32_directory ("gtk-2.0"), GTK_VERSION, "engines", NULL);
 #endif
   module_path[n++] = path;
 
@@ -457,7 +455,7 @@ gtk_rc_add_initial_default_files (void)
 #ifndef G_OS_WIN32
       str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc", NULL);
 #else
-      str = g_build_filename (g_win32_get_package_installation_directory (GETTEXT_PACKAGE, get_gtk_dll_name ()), "gtkrc", NULL);
+      str = g_build_filename (get_gtk_win32_directory (""), "gtkrc", NULL);
 #endif
 
       gtk_rc_add_default_file (str);